In modern artificial vision systems, images are captured and stored as a two-dimensional array of data elements arranged in Cartesian or rectangular space, indexed by X and Y coordinates. Depending on the system application, when the image data is processed, it can be more computationally efficient to first convert the Cartesian image data to polar image data in terms of radius R and angle .theta. coordinates. Applications where such a conversion may be appropriate include image processing of objects which are circular in nature, determination of object rotation, or more complex operations such as machine reading and object verification.
In modern data processing systems, a Cartesian to polar transformation involves the creation of a fixed map derived from parameters defining the relationship between the Cartesian and polar systems; each Cartesian coordinate pair (X,Y) in the source image corresponding to a polar coordinate pair (R,.theta.) in the destination image. The polar system parameters, including the origin location, inner radius, outer radius, angle of scan (start angle, end angle), and degree of resolution, are a function of the size, shape, and orientation of the object, and the desired resolution of the polar image.
Generation of the map can be an inefficient process involving many floating point calculations which can consume seconds of processing time. For example, in some modern machine vision systems, each Cartesian pixel is converted to polar coordinates by determining the distance D from the origin and the angle .theta. relative to the X axis. To determine the distance D, the following operation is performed on each pixel: EQU D=sqrt(X*X+Y*Y);
to determine the radial angle .theta., the following operation is employed: EQU .theta.=arctan (Y/X);
where X and Y are the Cartesian coordinates of the pixel. Each of these operations involves complicated floating point calculations, demanding large amounts of processor time. To worsen matters, these inefficient computations are performed on highly iterative portions of the transformation.
Following a determination of the radial coordinates of each pixel, the coordinates are matched to a corresponding predefined polar element, requiring additional floating point arithmetic. These complex operations are performed for each pixel in the Cartesian system. Some advanced techniques increase transformation resolution by first dividing the pixels into subpixels. In these systems the aforementioned floating point operations are performed on each subpixel, geometrically increasing the number of floating point calculations required for creating the map function. For this reason any change in system parameters requiring calculation of a new system map can result in an unacceptable delay. Therefore the system map is predetermined and fixed at runtime, resulting in a system which is inflexible and not readily adaptable to environmental changes, for example changes in the size, location and features of the object being imaged.